<?php

class Application_Model_Proyectos extends Sgit_Model
{
    protected $_name = 'proyectos';
    protected $_primary = 'id';


    public function getProyecto($id)
    {
        return $this->getProyectos('', $id);
    }


    public function getProyectos($values = array(), $id = null)
    {
        $select = $this->getAdapter()->select();
        $select->from(array('proyectos'));
        $select->joinLeft('clientes', 'clientes.id = proyectos.id_cliente', array('cliente' => 'nombre', 'nif', 'raz_soc', 'doc_soc'));
        $select->joinLeft('salas', 'salas.id = proyectos.id_sala', array('sala' => 'nombre'));


        if (!is_null($id))
        {
            $select->where("proyectos.id= ?", $id);
        } else
        {
            if ($values['id_zona'])
                $select->where("proyectos.id_zona= ?", $values['id_zona']);
            if ($values['activo'])
                $select->where("proyectos.activo= ?", $values['activo']);
        }

        $rows = $this->getAdapter()->fetchAll($select);

        $circuitos=new Application_Model_Circuitos();
        $contadores=new Application_Model_Contadores();
        $racks=new Application_Model_Racks();
        $servicios=new Application_Model_Servicios();

        $sector=new Sgit_Form_Element_Select_Sector('id_sector');
        $tip_fact=new Sgit_Form_Element_Select_TipoFacturacion('tip_fact');
        $id_tip_disp=new Sgit_Form_Element_Select_TipoDisponibilidad('id_tip_disp');
        $tipo_gestion=new Sgit_Form_Element_Select_TipoGestion('tipo_gestion');
        
        $mod_dispon=new Sgit_Form_Element_Select_ModalidadDisponibilidad('mod_dispon');
        
        $tipo_alojamiento=new Sgit_Form_Element_Select_TipoAlojamiento('tipo_alojamiento');
        
        

        
        foreach($rows as $k => $v)
        {
           
           
            $rows[$k]['n_racks']=$v['racks'];
            $rows[$k]['circuitos']=$circuitos->getCircuitos(array('id_proyecto'=>$v['id']));
            $rows[$k]['contadores']=$contadores->getContadores(array('id_proyecto'=>$v['id']));
            $rows[$k]['racks']=$racks->getRacks(array('id_proyecto'=>$v['id']));
            $rows[$k]['servicios']=$servicios->getServicios(array('id_proyecto'=>$v['id']));
            
            
            $rows[$k]['cliente']=array('nombre'=>$v['cliente'],'cif'=>$v['nif'],'raz_soc'=>$v['raz_soc'], 'doc_soc'=>$v['doc_soc']);
            
            $rows[$k]['sector']=$sector->getMultiOption($v['id_sector']);
            $rows[$k]['tipo_facturacion']=$tip_fact->getMultiOption($v['tip_fact']);
            $rows[$k]['jp']=($v['id_dir']) ? Sgit_Util_User::run($v['id_dir']) :'';
            
            $rows[$k]['tipo_disponibilidad']=$id_tip_disp->getMultiOption($v['id_tip_disp']);
            $rows[$k]['gestion']=$tipo_gestion->getMultiOption($v['tipo_gestion']);
            $rows[$k]['modalidad_disponibilidad']=$mod_dispon->getMultiOption($v['mod_dispon']);
            
            $rows[$k]['tipo_de_alojamiento']=$tipo_alojamiento->getMultiOption($v['tipo_alojamiento']);

            foreach($rows[$k]['contadores'] as $v)
            {
                $rows[$k]['cc'][]=$v['cc'];
                $rows[$k]['potencia']+=$v['potencia'];
            }
            $rows[$k]['cc']=implode('-',array_unique($rows[$k]['cc']));
        }




        if (is_null($id))
            return $rows;
        else
            return $rows[0];

    }


    public function GetProyectosByPep($values = array(), $id = null)
    {

        $select = $this->getAdapter()->select();

        $select->from(array('proyectos'));
        $select->joinLeft('usuarios', 'usuarios.id = proyectos.id_dir', array('responsable' => 'nombre'));


        if (!is_null($id))
            $select->where("proyectos.id= ?", $id);


        $estado = ($values['activo']) ? $values['activo'] : 1;

        $select->where('proyectos.id_zona= ?', $this->_idZona);


        $activo = ($values['activo']) ? $values['activo'] : 1;
        if (!$id)
            $select->where('proyectos.activo= ?', $activo);

        $select->group('orden');

        $rows = $this->getAdapter()->fetchAll($select);

        $rows = $this->_preparabypep($rows);

        if (is_null($id))
            return $rows;
        else
            return $rows[0];

    }

    function _preparabypep($rows)
    {

        foreach ($rows as $k => $v)
        {
            if (strpos($v['nombre'], '|') == true)
                $rows[$k]['nombre'] = strstr($v['nombre'], '|', true);
            else
                $rows[$k]['nombre'] = $v['nombre'];


            $rows[$k]['mmr_text'] = Sgit_Util_SiNo::run($v['mmr'], true);
            $rows[$k]['uc_text'] = Sgit_Util_SiNo::run($v['uc'], true);


        }

        return $rows;
    }

}
